package com.sgave.blog.model;

import java.util.HashMap;

/**
 * 响应结果类
 * @author fly
 *
 **/
public class Result extends HashMap<String, Object> {

    private int code;
    private String msg;
    private Object data;

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }

    /**
     * 初始化一个新创建的Result对象，表示一个空消息
     */
    public Result() {
    }

    /**
     * 初始化一个新创建的Result对象
     * @param code 状态码
     * @param msg 消息
     * @param data 数据
     */
    public Result(int code, String msg, Object data) {
        super.put("code", code);
        super.put("msg", msg);
        if (data != null) {
            super.put("data", data);
        }
    }

    /**
     * 返回成功消息
     * @return 成功消息
     */
    public static Result success() {
        return Result.success("成功");
    }

    /**
     *返回成功消息
     * @param data 数据
     * @return 返回成功消息
     */
    public static Result success(Object data) {
        return Result.success("成功", data);
    }
    /**
     * 返回成功消息
     * @param msg 消息
     * @param data 数据
     * @return 成功消息
     */
    public static Result success(String msg, Object data) {
        return new Result(200, msg, data);
    }


    /**
     * 返回错误消息
     * @return 返回错误消息
     */
    public static Result error() {
        return Result.error("失败");
    }

    /**
     * 返回错误消息
     * @param msg 自定义消息
     * @return 返回错误消息
     */
    public static Result error(String msg) {
        return Result.error(500, msg);
    }

    /**
     * 返回错误消息
     * @param code 错误状态码
     * @param msg 错误消息
     * @return 返回错误消息
     */
    public static Result error(int code, String msg){
        return new Result(code, msg, null);

    }

    /**
     * 返回错误消息
     * @param msg 错误消息
     * @param data 数据
     * @return 返回错误消息
     */
    public static Result error(String msg, Object data) {
        return new Result(500, msg, data);
    }
}
